package Interfaz;

import javax.swing.JPanel;

import entidadesHibernate.Usuario;
import Gestores.GestorDeUsuario;
import Interfaz.Recursos.ImageButton;
import Interfaz.Recursos.JPanelMarco;

import java.awt.CardLayout;
import java.awt.event.MouseAdapter;
import java.awt.event.MouseEvent;

public class PantallaPrincipal extends JPanel{
	
	Aplicacion padre;
	JPanel panelMenu;
	JPanel panelContenido;
	private GestorDeUsuario gestorUsuario;
	ImageButton botonVolver;
	int pantallaActiva = 0;
	
	PanelInicio panelInicio = new PanelInicio(this); //0
	PanelEmisionLicencia panelEmisionLicencia = new PanelEmisionLicencia(this); //1
	PanelAltaTitular panelAltaTitular = new PanelAltaTitular(this); //2
	PanelAltaUsuario panelAltaUsuario = new PanelAltaUsuario(this);//3
	PanelImprimirLicencia panelImprimirLicencia = new PanelImprimirLicencia(this);//4


	public PantallaPrincipal(Aplicacion app,GestorDeUsuario gestorUsr){
		padre = app;
		gestorUsuario = gestorUsr;
		setLayout(null);
		
		JPanelMarco panelFondo = new JPanelMarco("/Interfaz/Imagenes/fondoPrincipal.png",1079,591);
		panelFondo.setBounds(0,0,1079,591);
		add(panelFondo);
		panelFondo.setLayout(null);
		
		JPanel panel = new JPanel();
		panel.setBounds(0, 0, 1079, 591);
		panel.setOpaque(false);
		panelFondo.add(panel);
		panel.setLayout(null);
		
		panelMenu = new JPanel();
		panelMenu.setBounds(0, 0, 317, 591);
		panel.add(panelMenu);
		panelMenu.setOpaque(false);
		panelMenu.setLayout(new CardLayout(0, 0));
		
		panelContenido = new JPanel();
		panelContenido.setBounds(317, 0, 762, 591);
		panel.add(panelContenido);
		panelContenido.setOpaque(false);
		panelContenido.setLayout(new CardLayout(0, 0));	
		
		//Crea y agrega el boton Volver
		botonVolver = new ImageButton("/Interfaz/Imagenes/botonVolver.png","/Interfaz/Imagenes/botonVolverRollOver.png");
		botonVolver.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)panelMenu.getLayout()).show(panelMenu, "menuPrincipal");
				botonVolver.setVisible(false);
			}
		});
		panel.add(botonVolver);
		botonVolver.setBounds(59,486,53,53);
		botonVolver.setVisible(false);
		
		
		crearMenu();
		crearContenido();
		
	}
	
	private void crearMenu(){
			
		
		//CREACION DEL MENU PRINCIPAL
		
		JPanel menuPrincipal = new JPanel();
		panelMenu.add(menuPrincipal, "menuPrincipal");
		menuPrincipal.setOpaque(false);
		menuPrincipal.setLayout(null);
		//Crea y agrega el boton Licencias
		ImageButton botonLicencias = new ImageButton("/Interfaz/Imagenes/botonLicencias.png","/Interfaz/Imagenes/botonLicenciasRollOver.png");
		botonLicencias.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)panelMenu.getLayout()).show(panelMenu, "menuLicencias");
				botonVolver.setVisible(true);
			}
		});
		menuPrincipal.add(botonLicencias);
		botonLicencias.setBounds(27,142,225,39);
		//Crea y agrega el boton Titulares
		ImageButton botonTitulares = new ImageButton("/Interfaz/Imagenes/botonTitulares.png","/Interfaz/Imagenes/botonTitularesRollOver.png");
		botonTitulares.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)panelMenu.getLayout()).show(panelMenu, "menuTitulares");
				botonVolver.setVisible(true);
			}
		});
		menuPrincipal.add(botonTitulares);
		botonTitulares.setBounds(55,254,224,39);
		//Crea y agrega el boton Usuarios
		ImageButton botonUsuarios = new ImageButton("/Interfaz/Imagenes/botonUsuarios.png","/Interfaz/Imagenes/botonUsuariosRollOver.png");
		botonUsuarios.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)panelMenu.getLayout()).show(panelMenu, "menuUsuarios");
				botonVolver.setVisible(true);
			}
		});
		menuPrincipal.add(botonUsuarios);
		botonUsuarios.setBounds(27,359,224,39);
		
		
		//CREACION DEL MENU LICENCIAS
		
		JPanel menuLicencias = new JPanel();
		menuLicencias.setLayout(null);
		menuLicencias.setOpaque(false);
		panelMenu.add(menuLicencias, "menuLicencias");
		//Crea y agrega el boton Emitir Licencia
		ImageButton botonEmitirLicencia = new ImageButton("/Interfaz/Imagenes/botonEmitirLicencia.png","/Interfaz/Imagenes/botonEmitirLicenciaRollOver.png");
		botonEmitirLicencia.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)(panelContenido.getLayout())).show(panelContenido,"panelEmisionLicencia");
				limpiarPantalla(pantallaActiva);
				pantallaActiva = 1;
			}
		});
		menuLicencias.add(botonEmitirLicencia);
		botonEmitirLicencia.setBounds(24,120,178,39);
		//Crea y agrega el boton Emitir Copia de Licencia
		ImageButton botonEmitirCopia = new ImageButton("/Interfaz/Imagenes/botonEmitirCopia.png","/Interfaz/Imagenes/botonEmitirCopiaRollOver.png");
		menuLicencias.add(botonEmitirCopia);
		botonEmitirCopia.setBounds(60, 176, 178, 39);
		//Crea y agrega el boton Imprimir Licencia
		
		JPanel menuImprimirLicencias = new JPanel();
		menuImprimirLicencias.setLayout(null);
		menuImprimirLicencias.setOpaque(false);
		panelMenu.add(menuImprimirLicencias, "menuImprimirLicencias");
		
		ImageButton botonImprimirLicencia = new ImageButton("/Interfaz/Imagenes/botonImprimirLicencia.png","/Interfaz/Imagenes/botonImprimirLicenciaRollOver.png");
		
		botonImprimirLicencia.addMouseListener(new MouseAdapter() {
			@Override

			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)(panelContenido.getLayout())).show(panelContenido,"panelImprimirLicencia");				
				limpiarPantalla(pantallaActiva);
				pantallaActiva = 4;			
			}
		});
		
		menuLicencias.add(botonImprimirLicencia);
		botonImprimirLicencia.setBounds(84, 233, 178, 39);
		//Crea y agrega el boton Renovar Licencia
		ImageButton botonRenovarLicencia = new ImageButton("/Interfaz/Imagenes/botonRenovarLicencia.png","/Interfaz/Imagenes/botonRenovarLicenciaRollOver.png");
		menuLicencias.add(botonRenovarLicencia);
		botonRenovarLicencia.setBounds(98,295,183,40);
		//Crea y agrega el boton Listado Licencias Expiradas
		ImageButton botonListado = new ImageButton("/Interfaz/Imagenes/botonListado.png","/Interfaz/Imagenes/botonListadoRollOver.png");
		menuLicencias.add(botonListado);
		botonListado.setBounds(96,357,184,40);
		//Crea y agrega el boton Licencias Licencias Expiradas por Criterio
		ImageButton botonCriterio = new ImageButton("/Interfaz/Imagenes/botonCriterio.png","/Interfaz/Imagenes/botonCriterioRollOver.png");
		menuLicencias.add(botonCriterio);
		botonCriterio.setBounds(55,416,219,41);
		
		
		//CREACION DEL MENU TITULARES
		
		JPanel menuTitulares = new JPanel();
		menuTitulares.setLayout(null);
		menuTitulares.setOpaque(false);
		panelMenu.add(menuTitulares, "menuTitulares");
		//Crea y agrega el boton Dar de Alta Titular
		ImageButton botonAltaTitular = new ImageButton("/Interfaz/Imagenes/botonAltaTitular.png","/Interfaz/Imagenes/botonAltaTitularRollOver.png");
		botonAltaTitular.addMouseListener(new MouseAdapter() {
			@Override
			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)(panelContenido.getLayout())).show(panelContenido,"panelAltaTitular");
				limpiarPantalla(pantallaActiva);
				pantallaActiva = 2;
			}
		});

		menuTitulares.add(botonAltaTitular);
		botonAltaTitular.setBounds(51,229,204,39);
		//Crea y agrega el boton Modificar Titular
		ImageButton botonModificarTitular = new ImageButton("/Interfaz/Imagenes/botonModificarTitular.png","/Interfaz/Imagenes/botonModificarTitularRollOver.png");
		menuTitulares.add(botonModificarTitular);
		botonModificarTitular.setBounds(63,325,248,40);
		
		
		//CREACION DEL MENU USUARIOS
		
		JPanel menuUsuarios = new JPanel();
		menuUsuarios.setLayout(null);
		menuUsuarios.setOpaque(false);
		panelMenu.add(menuUsuarios, "menuUsuarios");
		//Crea y agrega el boton Dar de Alta Usuario
		ImageButton botonAltaUsuario = new ImageButton("/Interfaz/Imagenes/botonAltaUsuario.png","/Interfaz/Imagenes/botonAltaUsuarioRollOver.png");
		
		botonAltaUsuario.addMouseListener(new MouseAdapter() {
			@Override

			public void mouseClicked(MouseEvent arg0) {
				((CardLayout)(panelContenido.getLayout())).show(panelContenido,"panelAltaUsuario");
				limpiarPantalla(pantallaActiva);
				pantallaActiva = 3;
			}
		});
		
		menuUsuarios.add(botonAltaUsuario);
		botonAltaUsuario.setBounds(51,229,204,40);
		//Crea y agrega el boton Modificar Usuario
		ImageButton botonModificarUsuario = new ImageButton("/Interfaz/Imagenes/botonModificarUsuario.png","/Interfaz/Imagenes/botonModificarUsuarioRollOver.png");
		menuUsuarios.add(botonModificarUsuario);
		botonModificarUsuario.setBounds(63,325,247,40);
		
		}
	
	private void crearContenido(){
		//PanelInicio panelInicio = new PanelInicio(this);
		panelContenido.add(panelInicio,"panelInicio");
		
		//PanelEmisionLicencia panelEmisionLicencia = new PanelEmisionLicencia(this);
		panelContenido.add(panelEmisionLicencia,"panelEmisionLicencia");
		
		//PanelAltaTitular panelAltaTitular = new PanelAltaTitular(this);
		panelContenido.add(panelAltaTitular,"panelAltaTitular");

		//PanelAltaUsuario panelAltaUsuario = new PanelAltaUsuario(this);
		panelContenido.add(panelAltaUsuario,"panelAltaUsuario");
		
		panelContenido.add(panelImprimirLicencia,"panelImprimirLicencia");		
	}
	
	public Usuario obtenerUsuarioLoggeado(){
		return gestorUsuario.getUsuarioLoggeado();
	}
	
	public void volver(){
		botonVolver.setVisible(false);
		((CardLayout)panelContenido.getLayout()).show(panelContenido, "panelInicio");
		((CardLayout)panelMenu.getLayout()).show(panelMenu, "menuPrincipal");
		
	}
	
	public void limpiarPantalla(int pantalla){
		
		switch(pantalla){
			case 0:	panelInicio.limpiar();
					break;
			case 1:	panelEmisionLicencia.limpiar();
					break;
			case 2:	panelAltaTitular.limpiar();
					break;
			case 3: panelAltaUsuario.limpiar();
					break;
			case 4: panelImprimirLicencia.limpiar();
					break;		
		}
	}
	
}
